<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类的复习</title>
</head>
<body>
    <script>
        class Person{
            //属性  下面都在为实例对象添加属性
            name;
            age;
            gender;
            mingzi = "人类";

            //构造方法
            constructor(name, age, gender){
                // this 是指向『实例对象』的
                this.name = name;
                this.age = age;
                this.gender = gender;
            }

            //为『实例对象』添加方法
            run = function(){
                console.log('我可以跑....');
            }

            //方法  为 Person 的『原型对象』添加方法
            learn(){
                console.log('我可以学习....');
            }

            run(){
                console.log('跑跑跑.....');
            }
        }

        let me = new Person('xiaohigh',34,'男');

        console.log(me);
        // me.run();
        // me.learn();

        //继承
        class A {
            constructor(name){
                this.name = name;
            }

            run(){
                console.log('可以运行...');
            }
        }

        //继承 A 类
        class B extends A{
            //子类构造方法
            constructor(name, age){
                //调用 super 函数. 父类的构造方法, 简化初始化代码
                super(name);// 如果子类有构造方法, 则 super 函数必须要调用
                this.age = age;
            }

            run(){
                console.log('跑起来...');
            }

        }

        //实例化 B 类
        let b = new B('张三', 26);
        console.log(b);
        //调用方法
        b.run();


    </script>
</body>
</html>